package cn.cool.domain.trade.service;

import cn.cool.domain.trade.model.entity.MarketPayOrderEntity;
import cn.cool.domain.trade.model.entity.PayActivityEntity;
import cn.cool.domain.trade.model.entity.PayDiscountEntity;
import cn.cool.domain.trade.model.entity.UserEntity;
import cn.cool.domain.trade.model.valobj.GroupBuyProgressVO;

public interface ITradeLockOrderService {

    MarketPayOrderEntity queryNoPayMarketPayOrderByOutTradeNo(String userId, String outTradeNo);

    GroupBuyProgressVO queryGroupBuyProgress(String teamId);

    MarketPayOrderEntity lockMarketPayOrder(UserEntity userEntity, PayActivityEntity payActivityEntity, PayDiscountEntity payDiscountEntity) throws Exception;

    void lockMarketPayOrderLimit(String activityId, String goodsId);

    boolean lockMarketPayOrderDone(String activityId, String teamId);
}
